/**
 * 
 */
package com.epart.widget.module.login;

import com.epart.widget.domain.AdminAdministrator;
import com.epart.widget.domain.Member;

/**
 * 로그인 서비스
 * 
 * @author cwsong
 * @version 2011. 3. 10.
 */
public class LoginService {

	private LoginDao loginDao;
	
	/**
	 * 로그인Dao를 인자로 받는 생성자
	 * 
	 * @param loginDao
	 */
	public LoginService(LoginDao loginDao) {
		this.loginDao = loginDao;
	}
	
	/**
	 * 아이디 비밀번호를 체크한다.<br />
	 * 10 => 부정확한 정보, 1=>최고 관리자, 2=>부관리자, 3=>나머지 회원
	 * 
	 * @param loginId
	 * @param loginPassword
	 * @return 체크결과 
	 */
	public int isIdExistAndPasswordCorrent(String loginId, String loginPassword) {

		Member member = loginDao.getMember(loginId);
		AdminAdministrator admin = loginDao.getAdmin(loginId);

		if (member == null && admin != null) {
			if (admin.isPasswordCorrect(loginPassword)) {
				return 1;// 최고관리자임
			}
			return 10;
		} else if (member != null && admin != null) {
			if (member.isPasswordCorrect(loginPassword)) {
				return 2;// 부관리자임
			}
			return 10;
		} else if (member != null && admin == null) {
			if (member.isPasswordCorrect(loginPassword)) {
				return 3;// 회원임, 부관리자아님
			}
			return 10;
		} else if (member != null && admin != null) {
			return 10;// 비회원, 관리자도아님
		} else {
			return 10;// 에러임
		}
	}
	
	/**
	 * 아이디로 회원정보를 반환한다.
	 * 
	 * @param memberId
	 * @return 회원정보
	 */
	public Member getMember(String memberId) {
		Member member = loginDao.getMember(memberId);
		return member;
	}
	
	/**
	 * 관리자정보를 반환한다.
	 * 
	 * @param adminId
	 * @return 관리자정보
	 */
	public AdminAdministrator getAdmin(String adminId) {
		AdminAdministrator admin = loginDao.getAdmin(adminId);
		return admin;
	}
}
